#!/bin/bash ######################################################## #1 INDEX #1program name setrs. #1used machine ultra1 creator3D. #1used os Solaris2.9. #1produced by T.INoue. #1shell type bash. #1maked date 2002.10.03. #1program version 0.1.3. #1security non. ######################################################## # echo aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa echo このプログラムは、resolv.conf をセット echo するための簡易プログラムです。 echo echo resolv.conf setting program. echo ver.0.1.3 echo echo 使用に関する著作権は、ありません。 echo 改良した場合については、当方へ連絡をお願いします。 echo いただいた改訂版は、謝辞を入れてupする事にします。 echo これに関する連絡先は、mmatta@yahoo.co.jpへお願い echo します。 echo aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa #1----------org fileがある場合、戻すか確認する。-- ( ls /etc/resolv.org > /dev/null ) >& /dev/null flag=$? if [ 0 = $flag ]; then echo resolv.orgファイルがあります。 echo cat /etc/resolv.org echo echo resolv.orgをセットしたものを元に戻せます。 echo 戻す場合は、 restore=rを入れてください。 echo 書き換える場合は、set=sを入れてください。 echo 終了する場合は、 exit=eを入れてください。 read CHECK if [ $CHECK = "r" ]; then echo 元に戻す処理を実行しました。 cp /etc/resolv.org /etc/resolv.conf exit fi if [ $CHECK = "R" ]; then echo 元に戻す処理を実行しました。 cp /etc/resolv.org /etc/resolv.conf exit fi if [ $CHECK = "e" ]; then echo なにもしないで終了しました。 exit fi fi #1----------routine end --------------------------- #1----------file search --------------------------- ( find /etc/resolv.conf > /dev/null ) >& /dev/null flag=$? if [ 0 -ne $flag ]; then echo resolv.confが無いので、新規ファイルを作成します。 echo このresolv.confを作成しますか、yes=y no=n else echo 現在設定されているresolv.confは、 # 現在設定されているresolv.confを表示する。 cat /etc/resolv.conf echo echo このresolv.confを変更しますか、yes=y no=n fi #1----------end of routine -------------- #1変更するか確認する。しない場合終了する。 read CHECK if [ $CHECK = "n" ]; then echo 終了します。 exit fi if [ $CHECK = "N" ]; then echo 終了します。 exit fi #2現在のデーターをresolv.orgに保存する。 if [ $flag = 0 ]; then cat /etc/resolv.conf > /etc/resolv.org #2----------end of routine -------------- fi #1----------routine end --------------------------- #1domain nameの入力を指示します。 echo aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa echo あなたのdomainを入れてください。なければそのまま echo enter-keyを押してください。 echo 例.mmatta.gv.jp , mmatta.ac.jp echo aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa flag="false" while [ $flag = "false" ]; do read DOMAIN echo 設定されるドメインは、$DOMAINになります。y=yes n=try again. read answer if [ "x$answer" = "xy" ]; then flag="true" else echo もう一度入れてください。 fi done #1----------routine end --------------------------- #1name address data1の入力を指示します。 echo aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa echo あなたのnameserver address data1を入れてください。 echo 必ずセットしてください。 echo 例.43.001.001.011 echo aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa flag="false" read ADDRESS1 if [ -n "$ADDRESS1" ]; then echo pingで簡易的な確認をします。少々お待ちください。 #2入れたdataが正しいか判断する。ただしnameserverとは限らない。check for i in $( ping $ADDRESS1 ); do if [ $i = "alive" ]; then flag="true" fi done if [ $flag = "false" ]; then echo WARNING! echo ping で確認しましたが、そのaddressは、ありませんでした。 echo defaultrouterは、設定して再起動してありますか。 echo namesaerver-addressは、ただしいですか。 echo プロバイダによっては、MASKしているところもあります。 echo このまま処理を行います。 else echo 発見しました。 fi #2----------end of routine -------------- fi #1----------end of routine -------------- #1name address data2の入力を指示します。 echo aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa echo あなたのnameserver address data2を入れてください。 echo 必要なければ、enter-keyを入れてください。 echo 例.43.001.001.012 echo aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa flag="false" read ADDRESS2 if [ -n "$ADDRESS2" ]; then echo pingで簡易的な確認をします。少々お待ちください。 #2入れたdataが正しいか判断する。ただしnameserverとは限らない。check for i in $( ping $ADDRESS2 ); do if [ $i = "alive" ]; then flag="true" fi done if [ $flag = "false" ]; then echo WARNING!! echo ping で確認しましたが、そのaddressは、ありませんでした。 echo defaultrouterは、設定して再起動してありますか。 echo namesaerver-addressは、ただしいですか。 echo プロバイダによっては、MASKしているところもあります。 echo このまま処理を行います。 else echo 発見しました。 fi #2----------end of routine -------------- fi #1----------end of routine -------------- # name address data3の入力を指示します。 echo aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa echo あなたのnameserver address data3を入れてください。 echo 必要なければ、enter-keyを入れてください。 echo 例.43.001.001.013 echo aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa flag="false" read ADDRESS3 if [ -n "$ADDRESS3" ]; then echo pingで簡易的な確認をします。少々お待ちください。 #2入れたdataが正しいか判断する。ただしnameserverとは限らない。check for i in $( ping $ADDRESS3 ); do if [ $i = "alive" ]; then lag="true" fi done if [ $flag = "false" ]; then echo WARNING!! echo ping で確認しましたが、そのaddressは、ありませんでした。 echo defaultrouterは、設定して再起動してありますか。 echo namesaerver-addressは、ただしいですか。 echo プロバイダによっては、MASKしているところもあります。 echo このまま処理を行います。 else echo 発見しました。 fi #2----------end of routine -------------- fi #1----------end of routine -------------- #1orginalをresolv.orgへ移す。 mv /etc/resolv.conf /etc/resolv.org #1----------end of routine -------------- #1domainのほかに、namesaerverを書き込みます。 #1document echo '### dimain address ###' > /etc/resolv.conf #1----------end of routine -------------- #1domain set echo domain $DOMAIN >> /etc/resolv.conf #1----------end of routine -------------- #1document echo '### name server address set ###' >> /etc/resolv.conf #1----------end of routine -------------- #1nameserver1 set if [ -n "$ADDRESS1" ]; then echo nameserver $ADDRESS1 >> /etc/resolv.conf fi #1----------end of routine -------------- #1nameserver2 set if [ -n "$ADDRESS2" ]; then echo nameserver $ADDRESS2 >> /etc/resolv.conf fi #1----------end of routine -------------- #1nameserver3 set if [ -n "$ADDRESS3" ]; then echo nameserver $ADDRESS3 >> /etc/resolv.conf fi #1----------end of routine -------------- echo '###############################' >> /etc/resolv.conf #1----表示します。 -------------------------------- cat /etc/resolv.conf #1----------routine end --------------------------- echo 変更した結果は、少し経つと有効になります。 echo ありがとうございました。 #-----------stop run ------------------------------